/**
 * 
 */
package com.haizhi.dao;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.querydsl.QueryDslPredicateExecutor;
import org.springframework.data.repository.query.Param;

import com.haizhi.bean.TbProduct;
import com.haizhi.bean.TbProductData;

/**
 * @author jiangjintai
 *
 */
public interface ProductDataDao extends JpaRepository<TbProductData, Integer>,
		QueryDslPredicateExecutor<TbProductData> {

	/**
	 * jiangjintai
	 * 2016年8月14日
	 * @param tbProductCopy
	 * @return
	 */
	TbProductData findTopByTbProduct(TbProduct tbProductCopy);

	/**
	 * jiangjintai
	 * 2016年8月15日
	 * @param dataVersion
	 * @param productId
	 * @return
	 */
	List<TbProductData> findByDataVersionAndTbProductProductId(
			Integer dataVersion, Integer productId);

	/**
	 * jiangjintai
	 * 2016年8月15日
	 * @param tb
	 * @return
	 */
	@Query("from TbProductData t where t.dataVersion = (select  max(t2.dataVersion)  from TbProductData t2 where t2.tbProduct.productId = :productId) and t.tbProduct.productId = :productId")
	List<TbProductData> findByVersion(@Param("productId")Integer productId);

	/**
	 * jiangjintai
	 * 2016年8月21日
	 * @param tbProductCopy
	 * @return
	 */
	TbProductData findTopByTbProductOrderByDataIdDesc(TbProduct tbProductCopy);

}
